package com.sheep.spring;

/**
 * bean信息定义类
 * bean的各种相关信息，
 * 譬如是否由工厂创建，
 * 是否是单例
 *
 * @author wangze
 * @date 2020/07/15
 **/
public interface BeanDefinition {
    String SINGLETION = "singletion";
    String PROTOTYPE = "prototype";

    /**
     * 获取类型
     *
     * @return
     */
    Class<?> getBeanClass();

    /**
     * 如果bean是否工厂创建，获取工厂名称
     *
     * @return
     */
    String getBeanFactory();

    String getCreateBeanMethond();

    String getStaticCreateBeanMethod();

    String getBeanInitMethod();

    String getBeanDestoryMethod();

    String getScope();

    boolean isSingleton();

    boolean isPrototype();

    boolean validate();
}
